package Regex;/*
 *
 * @author 陈粒
 * @version 创建时间：2021/7/12 19:57
 */
/**
 * 正则表达式：
 * 正确的字符串格式规则。（有超级多的规则）
 * 常用来判断用户输入的内容是否符合格式的要求，注意是严格区分大小写的。
 * String提供了支持正则表达式的方法:
 * 1.Matches(正则) : 当前字符串能否匹配正则表达式
 * 2.replaceAll(正则,子串) : 替换子串
 * 3.split(正则) : 拆分字符串
 */

import org.junit.Test;

import java.util.Arrays;
import java.util.Scanner;

public class Regex {
    @Test
    public void Regexmethod() {//正则表达式的方法
        System.out.println("请输入一行字符串");
        String s1 = new Scanner(System.in).nextLine();
        String s5 = "hsakjhska";
        System.out.println("字符串为：" + s5);
        String[] news1 = s5.split("h");//对"h"正则，输入有空格则分割为一个字符串数组,
        // 如果regex(正则)的是字符串的头字母，则把头字母之前的空字符串赋值到数组中
        System.out.println("数组为：" + Arrays.toString(news1));
        System.out.println("-------------");
        String s2 = "ABC DOF SPS";
        boolean flag1 = s1.matches(s2);//将整个字符串s1和整个字符串s2进行匹配，输出结果为boolean类型
        System.out.println(flag1);
        System.out.println("-------------");
        String s3 = "<REGEX>";
        String s4 = s1.replaceAll(" ", s3);//对" "（空格）正则，将" "（空格）替换为<REGEX>
        System.out.println(s4);
    }

    public static void main(String[] args) {//正则表达式的使用
        String input=new Scanner(System.in).nextLine();
        String regex="[0-9]{17}[0-9x]";//定义一个字符串，字符串里面是正则表达式的规则
        if(input.matches(regex)){
            System.out.println("输入正确");
        }
        else {
            System.out.println("输入错误");
        }
    }
}
